import json
from openai import OpenAI

# 设置OpenAI API客户端
client = OpenAI(
    base_url="https://api.gptsapi.net/v1",
    api_key="sk-kghaf948e5e3bc901fdb866fa5f1ffe18d19d9961a8N5pAg"
)

# 从文件加载数据
with open('extracted_data.json', 'r', encoding='utf-8') as file:
    legal_documents = json.load(file)

# 定义调用GPT-4 API的函数
def extract_entities(text):
    try:
        prompt = (
            "你是一个法律文本分析助手，负责从借款纠纷法律文本中提取特定的实体信息。请按照以下步骤处理文本：\n"
            "1. 阅读法律文本。\n"
            "2. 提取以下信息：\n"
            "- 案件名称（请总结）\n"
            "- 原告姓名\n"
            "- 原告住所\n"
            "- 被告姓名\n"
            "- 被告住所\n"
            "- 担保人姓名\n"
            "- 借款时间\n"
            "- 借款金额\n"
            "- 借条内容\n"
            "- 借款用途\n"
            "- 诉讼请求\n"
            "- 审理查明内容\n"
            "- 法院认定事实\n"
            "- 其他信息\n"
            "3. 确保你的回答按照下面的格式组织，以确保一致性：\n\n"
            "1. **案件名称**:\n   - [案件名称]\n\n"
            "2. **原告姓名**:\n   - [原告姓名]\n\n"
            "3. **原告住所**:\n   - [原告住所]\n\n"
            "4. **被告姓名**:\n   - [被告姓名]\n\n"
            "5. **被告住所**:\n   - [被告住所]\n\n"
            "6. **担保人姓名**:\n   - [担保人姓名]\n\n"
            "7. **借款时间**:\n   - [借款时间]\n\n"
            "8. **借款金额**:\n   - [借款金额]\n\n"
            "9. **借条内容**:\n   - [借条内容]\n\n"
            "10. **借款用途**:\n    - [借款用途]\n\n"
            "11. **诉讼请求**:\n    - [诉讼请求]\n\n"
            "12. **审理查明内容**:\n    - [审理查明内容]\n\n"
            "13. **法院认定事实**:\n    - [法院认定事实]\n\n"
            "14. **其他信息**:\n    - [其他信息]\n\n"
            f"以下是借款纠纷法律文本，请按照上述格式提取信息：\n\n{text}"
        )
        response = client.chat.completions.create(
            model="gpt-4o",
            messages=[
                {"role": "system", "content": "你是一个法律文本分析助手，负责从借款纠纷法律文本中提取特定的实体信息。"},
                {"role": "user", "content": prompt}
            ]
        )
        print(response)  # 调试输出响应内容
        content = response.choices[0].message.content.strip()  # 确保访问方式正确
        return content
    except Exception as e:
        print(f"Error extracting entities: {e}")
        return None

# 批量处理数据并保存结果
extracted_entities = []

for document in legal_documents:
    entities = extract_entities(document)
    if entities:
        extracted_entities.append(entities)
    else:
        extracted_entities.append("Error processing document")

# 将结果保存到文件
with open('extracted_entities_4o.json', 'w', encoding='utf-8') as file:
    json.dump(extracted_entities, file, ensure_ascii=False, indent=4)

print("实体提取完成，结果已保存到 'extracted_entities.json' 文件中。")
